package cn.com.open.itembank.service;

import cn.com.open.itembank.dto.AsyncRule;
import cn.com.open.itembank.dto.ReturnModel;
import cn.com.open.itembank.entity.CourseItemBank;
import cn.com.open.itembank.entity.TestPaper;

public interface GenerateCreateTestPaper {

    ReturnModel generateCreateTestPaper(AsyncRule asyncRule);

    //region 形成试卷模型

    /**
     * 形成试卷模型.
     *
     * @param paperId    试卷id
     * @param itemBankId 题库id
     * @param creater    创建人id
     * @param paperName  试卷名称
     * @param itemBank   题库模型
     * @param oid        机构id
     * @return the insert paper
     */
    TestPaper getInsertPaper(String paperId, String itemBankId, String creater, String paperName, String oid, CourseItemBank itemBank);

    //endregion

    //region 新增试卷保存

    /**
     * 新增试卷保存.
     *
     * @param qtiXml    qti xml
     * @param testPaper the test paper
     * @return the int
     */
    int saveInsertTestPaper(String qtiXml, TestPaper testPaper);
    //endregion

    //region 更新试卷表json

    /**
     * 更新试卷表json.
     *
     * @param itemBankId the item bank id
     * @param id         the id
     */
    void updateJson(String itemBankId, String id);

    //endregion

    //region 更新试题曝光信息

    /**
     * 更新试题曝光信息
     *
     * @param id         试卷编号
     * @param questionId 试题编号
     * @param isIncrease 增加/减少：t/f
     * @param newDate    当前时间
     * @return
     */
    int updateQuestionDisplay(String id, String questionId, boolean isIncrease, String newDate);
    //endregion
}
